1. Field of the Invention
This application is a continuation of U.S. patent application Ser. No. 10/922,275, filed on Aug. 19, 2004, by Kyunsun Chang, et al., which is currently under allowance. This invention relates to surplus or excess resource management, allocation and arbitration in on-demand computing environments such a in utility computing, data center, and grid computing environments.
2. Background of the Invention
As business demand increases, the depth of technology improvements and its intelligence to handle multiple processes becomes highly desirable and crucial. In any enterprise operations, it is difficult to manage effectively the ever-fluctuating resources available while maximizing the resource utilization. Because an enterprise's demand on computing resources can vary drastically from one time to another, it is challenging to maintain a cost-effective balance in resource allocation to meet various scenarios. In fact, Infrastructure Technology (“IT”) costs can become very expensive when maintaining sufficient resources to meet peak requirements. On the other hand, if enterprise reduces costs by maintaining minimal computing resources, there will be insufficient resources accessible to meet peak requirements.
Because of this dilemma, the On-Demand (“OD”) Computing enterprise model was developed to solve this problem. This model allows computing resources to be made available to the user on an as-needed basis. The resources may be housed within the enterprise or handled by a third party service provider. Major IT vendors in the marketplace such as IBM, Microsoft, HP and Sun Microsystems are developing OD Computing products to help companies to respond to the dynamic business environments at a faster pace. In addition, other new IT concepts such as grid computing and utility computing emerged under this broad category.
Utility computing is an on-demand approach that combines outsourced computing resources and infrastructure management with a usage-based payment structure. It is a service-provisioning model that allows service providers to make resources available to customers as needed then charges usage costs rather than the typical flat rate. The utility model aims to maximize the efficient use of resources while using metered services to minimize the associated costs.
These computing resources are normally organized into data centers. A data center is a centralized repository for the storage, management, and dissemination of data and information organized around a particular area or body of knowledge. For example, the National Climatic Data Center (“NCDC”) maintains the world's largest archive of weather information. Website visitors can request weather related questions to the NCDC for response.
A data center can also be a highly specialized facility that houses various websites and provides data serving and other services for other companies. This kind of data center may contain a network operations center (“NOC”), which is a restricted access area containing automated systems that constantly monitor server activity, web traffic, and network performance. In fact, problem reports can be generated to IT staffs to bring awareness for potential problems even before they occur. Within a company, a data center can describe the central data processing facility or the group of people who manages the company's data processing and networks.
Similarly, grid computing is an emerging technology that utilizes a collection of systems and resources to deliver qualities of services. It is distributed computing at its best, by creating a virtual self-managing computer, the processing for which is handled by a collection of interconnected heterogeneous systems sharing different combinations of resources. In simple terms, grid computing is about getting computers to work together, and allowing businesses, or grid participants, to optimize available resources.
The framework to grid computing is large-scale resource sharing, which exists within multiple management domains, typically involving highly parallel applications connected together through a communications medium, and organized to perform one or more requested jobs simultaneously. Each grid resource's characteristics can include, but are not limited, to processing speed, storage capability, licensing rights, and types of applications available.
Grid computing's architecture is defined in the Open Grid Services Architecture (“OGSA”), which includes a basic specification Open Grid Services Infrastructure (“OGSI”).
Using grid computing to handle computing jobs of all sizes, and especially larger jobs such as enterprise processes, has several advantages. First, it exploits underutilized resources on the grid. For example, if a financial services company suddenly encounters a 50% increase in stock trade transactions during a 30-minute time period, using a traditional systems process, the company would face an increase in network traffic, latent response and completion time, bottleneck in processing and even overload on its resources due to its limited or fixed computational and communications resources.
In a similar situation, however, grid computing can adjust dynamically to meet the changing business needs, and respond instantly to stock transaction increase using its network of unused resources. For example, a grid computing system could run an existing stock trading application on four underutilized machines to process transactions, and deliver results four times faster than the traditional computing architecture. Thus, grid computing provides a better balance in resource utilization and enables the potential for massive parallel CPU capacity.
In addition, because of its standards, grid computing enables and simplifies collaboration among many resources and organizations from a variety of vendors and operators. Grid computing provides sharing capabilities that extends to additional equipment, software, services, licenses and others. Furthermore, the grid can offer more advanced resource load balancing. A relatively idle machine may receive an unexpected peak job, or if the grid is fully utilized, priorities may be assigned to better execute the number of requested jobs. By using a Grid Management System (“GMS”) scheduler, a grid can provides excellent infrastructure for brokering resources.
Within a Grid or other on-demand computing environment, there will almost always be pools of some free resources. CPU and disk storage are examples of resources that can be free or idle at any point in time. “Resource providers”, also known as producers, own these free resources, while the companies that require CPU and disk storage to run its IT needs are the “consumers” within the grid or on-demand environment. By agreement on value, consumers sign a contract with resource providers to consume a predetermined amount of guaranteed resources allocated for an agreed price for set amount of time. Consumers are responsible for actual usage and any additional resource require will be have its extra costs levied once the consumer exceeds its previously set capacity.
Although both grid and utility computing provide a better method for consumers to access and collaborate resources on an as-needed basis, it does not create a demand environment that promotes to consumers the number of available resources. Typically, excess capacity remains idle until a consumer initiates an order for more resource requirement. In addition, because service providers are deficient in marketing unused resources, there also lacks a definitive “value” on the underutilized resources.
Therefore, there exists a need in the art of a systematic approach to create a marketplace that facilitates the demand for excess unused resource capacity. In addition, there exists a need in the art of creating “worth” or “value” for available resources in order for respective parties to enter into contractual agreements for goods and services exchanged. Furthermore, there exists a need in the art of optimizing available resources to allow usage at its optimum capacity at any given time.